package cn.blnp.net.flowable.task.service.introduce;

import cn.hutool.core.map.MapUtil;
import org.flowable.engine.delegate.MapBasedFlowableFutureJavaDelegate;
import org.flowable.engine.delegate.ReadOnlyDelegateExecution;

import java.util.HashMap;
import java.util.Map;

/**
 * <h3></h3>
 *
 * @author <a href="mailto:blnp.yibin@qq.com">lyb</a>
 * @version 1.0
 * @since 2025/5/12 17:39
 */
public class MyMapBasedFlowableFutureJavaDelegate implements MapBasedFlowableFutureJavaDelegate {
    @Override
    public Map<String, Object> execute(ReadOnlyDelegateExecution inputData) {
        //该方法使用DelegateExecution的快照作为执行的输入数据
        //这里的代码将由Flowable交由线程池异步运行，通常用于执行一些比较耗时的复杂逻辑
        //这里没有数据库事务，如果需要事务控制，应该由自己的服务进行管理
        //执行结果需要以Map的方式返回，Flowable会以该Map的key作为变量名、value为变量值设置到流程中
        Map<String, Object> map = MapUtil.builder(new HashMap<String, Object>())
                .put("result", "success")
                .build();
        return map;
    }
}
